home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / pwdb / pwdb_shadow.h < prev    next >
C/C++ Source or Header  |  2005-10-13  |  4KB  |  157 lines

  1. /*
  2.  * external defines for the pwdb libraries
  3.  *
  4.  * this library includes defines for passwd+shadow and group files
  5.  */
  6.  
  7. #ifndef PWDB_SHADOW_PUBLIC_H
  8. #define PWDB_SHADOW_PUBLIC_H
  9.  
  10. /*
  11.  * The definitions for SHADOW
  12.  */
  13.  
  14. /* STRUCTURE(S) */
  15.  
  16. typedef    long __pwdb_sptime;
  17.  
  18. /*
  19.  * Shadow password security file structure.
  20.  */
  21.  
  22. struct __pwdb_spwd {            /* The shadow password structure */
  23.      char *sp_namp;            /* login name */
  24.      char *sp_pwdp;            /* encrypted password */
  25.      __pwdb_sptime sp_lstchg;   /* date of last change */
  26.      __pwdb_sptime sp_min;    /* minimum number of days between changes */
  27.      __pwdb_sptime sp_max;    /* maximum number of days between changes */
  28.      __pwdb_sptime sp_warn;     /* number of days of warning before password
  29.                    expires */
  30.      __pwdb_sptime sp_inact;    /* number of days after password expires
  31.                    until the account becomes unusable. */
  32.      __pwdb_sptime sp_expire;   /* days since 1/1/70 until account expires */
  33.      unsigned long sp_flag;     /* reserved for future use */
  34. };
  35.  
  36. /* FUNCTIONS */
  37.  
  38. /*
  39.  * Shadow password security file functions.
  40.  */
  41.  
  42. /*
  43.  * Read next entry from the shadow-file stream, opening it if necessary.
  44.  */
  45.  
  46. struct __pwdb_spwd *__pwdb_getspent(void);
  47.  
  48. /*
  49.  * Open and close the shadow-file stream
  50.  */
  51.  
  52. void __pwdb_setspent(void);
  53. void __pwdb_endspent(void);
  54.  
  55. /*
  56.  * Read/write shadow entry from/to __stream
  57.  */
  58.  
  59. struct __pwdb_spwd * __pwdb_fgetspent(FILE *);
  60. int __pwdb_putspent(const struct __pwdb_spwd *, FILE *);
  61.  
  62. /*
  63.  * Obtain shadow entry for the user identified by their "username"
  64.  */
  65.  
  66. struct __pwdb_spwd *__pwdb_getspnam(const char *__username);
  67.  
  68. /*
  69.  * convert a shadow entry from text (as it appears in the shadow file
  70.  * to a __pwd_spwd structure)
  71.  */
  72.  
  73. struct __pwdb_spwd * __pwdb_sgetspent(const char *);
  74.  
  75. /*
  76.  * Shadow group security file structure
  77.  */
  78.  
  79. struct    __pwdb_sgrp {
  80.      char    *sg_name;    /* group name */
  81.      char    *sg_passwd;    /* group password */
  82.      char    **sg_adm;    /* group administator list */
  83.      char    **sg_mem;    /* group membership list */
  84. };
  85.  
  86. /*
  87.  * Shadow group security file functions.
  88.  */
  89.  
  90. /*
  91.  * Read next entry from shadow-group file.
  92.  */
  93.  
  94. struct    __pwdb_sgrp *  __pwdb_getsgent (void);
  95.  
  96. /*
  97.  *  Open(rewind)/close the shadouw-group stream
  98.  */
  99.  
  100. void    __pwdb_setsgent (void);
  101. void    __pwdb_endsgent (void);
  102.  
  103. /*
  104.  * get the shadow-group entry for the named group
  105.  */
  106.  
  107. struct    __pwdb_sgrp *  __pwdb_getsgnam (const char *);
  108.  
  109. /*
  110.  * create a sgrp structure from a buffer of text which is in the
  111.  * format of a line in the shadow-group file
  112.  */
  113.  
  114. struct    __pwdb_sgrp *  __pwdb_sgetsgent (const char *);
  115.  
  116. /* read/write a shadow entry from the argument stream */
  117. struct    __pwdb_sgrp *  __pwdb_fgetsgent (FILE *);
  118. int __pwdb_putsgent (const struct __pwdb_sgrp *sgrp, FILE *fp);
  119.  
  120. /* LOW level functions */
  121.  
  122. /* SHADOW FILE */
  123. struct __pwdb_spwd * __pwdb___spw_dup (const struct __pwdb_spwd *);
  124. int __pwdb_spw_close (void);
  125. const struct __pwdb_spwd * __pwdb_spw_locate (const char *);
  126. int __pwdb_spw_lock (void);
  127. int __pwdb_spw_name (const char *);
  128. const struct __pwdb_spwd * __pwdb_spw_next (void);
  129. int __pwdb_spw_open (int);
  130. int __pwdb_spw_remove (const char *);
  131. int __pwdb_spw_rewind (void);
  132. int __pwdb_spw_unlock (void);
  133. int __pwdb_spw_update (const struct __pwdb_spwd *);
  134.  
  135. /* SHADOW GROUP */
  136. int __pwdb_sgr_close (void);
  137. const struct __pwdb_sgrp * __pwdb_sgr_locate (const char *);
  138. int __pwdb_sgr_lock (void);
  139. int __pwdb_sgr_name (const char *);
  140. const struct __pwdb_sgrp * __pwdb_sgr_next (void);
  141. int __pwdb_sgr_open (int);
  142. int __pwdb_sgr_remove (const char *);
  143. int __pwdb_sgr_rewind (void);
  144. int __pwdb_sgr_unlock (void);
  145. int __pwdb_sgr_update (const struct __pwdb_sgrp *);
  146.  
  147. struct __pwdb_sg_file_entry {
  148.     char    *sgr_line;
  149.     int     sgr_changed;
  150.     struct  __pwdb_sgrp    *sgr_entry;
  151.     struct  __pwdb_sg_file_entry *sgr_next;
  152. };
  153.  
  154. /******************************************************************/
  155.  
  156. #endif /* PWDB_SHADOW_PUBLIC_H */
  157.